import BundleManager from "./managers/bundleManager";
import GameManager from "./managers/gameManager";
import SoundManager from "./managers/soundManager";
import LocalStorageService from "./services/localStorageService";
import PlatformService from "./services/platformService";
import RecordDataService from "./services/recordDataService";
import UIService from "./services/uiService";
import UserService from "./services/userService";

namespace Frame {
    export interface Managers {
        gameMgr: GameManager;
        soundMgr: SoundManager;
        bundleMgr: BundleManager;
    }
    export interface Services {
        /** 框架内置UI与页面 */
        uiSrv: UIService;
        /** 平台 */
        platformSrv: PlatformService;
        /** 用户 */
        userSrv: UserService;
        /** 本地缓存 */
        localStorageSrv: LocalStorageService;
        /** 游戏各模式数据 */
        recordDataSrv: RecordDataService;
    }

    export enum BundleName {
        Frame = "frameBundle",
        Sound = "soundBundle",
        Game = "gameBundle",
        Home = "home",
        loadingPage="loadingPage"
    }
    export type BundleList = { [elem in BundleName]: cc.AssetManager.Bundle };
    export type BundleNameList = { [elem in BundleName]: string };

    export class ManagerBase {
        protected _managerName: string = "ManagerBase";
        _Initialize() { console.log("正在初始化--管理类--", this._managerName); }
    }
    export class ServiceBase {
        protected _serviceName: string = "ServiceBase";
        _Initialize() { console.log("正在初始化--服务--", this._serviceName); }
    }
}

export default Frame;